//-----------------------------------------------------------------------------
//File: Core_Global.h
//
//Create by : mouse (July 2012)
//-----------------------------------------------------------------------------

#pragma once
#ifndef _CORE_GLOBAL_H_
#define _CORE_GLOBAL_H_

#ifndef UNICODE
#error "requires a Unicode build."
#endif

#ifndef STRICT
#define STRICT
#endif

// Standard Windows includes
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <wchar.h>
#include <malloc.h>
#include <memory.h>
#include <mmsystem.h>

// DirectX includes
#include <d3d9.h>
#include <d3dx9.h>
#include <dinput.h>

// Core includes
#include "Core_System.h"
#include "Core_Graphics.h"
#include "Core_Input.h"
#include "Core_Utility.h"
#include "Core_Mesh.h"
#include "Core_Object.h"
#include "Core_Timer.h"

//
#ifndef SAFE_DELETE
#define SAFE_DELETE(p)       { if (p) { delete (p);     (p)=NULL; } }
#endif    
#ifndef SAFE_DELETE_ARRAY
#define SAFE_DELETE_ARRAY(p) { if (p) { delete[] (p);   (p)=NULL; } }
#endif    
#ifndef SAFE_RELEASE
#define SAFE_RELEASE(p)      { if (p) { (p)->Release(); (p)=NULL; } }
#endif

#endif